/**
 * 
 */
package business;

import java.util.ArrayList;
import java.util.List;

import model.Artikel;
import db.ArtikelSource;
import db.DbManager;

/**
 * @author andris
 *
 */
class ArtikelContainer implements ArtikelLogik {

	private static ArtikelContainer instance = null;
	
	public static ArtikelContainer getInstance(){
		if(instance == null){
			instance = new ArtikelContainer();
		}
		return instance;
	}
	
	
	private List<Artikel> artikelListe = null;
	private ArtikelSource artikelSource;
	private boolean isClosed = false;
	
	/**
	 * 
	 */
	private ArtikelContainer(){
		initialize();
	}
	
	/**
	 * 
	 */
	private void initialize() {
		if(isClosed)
			throw new IllegalStateException("method invoked on closed instance");

		this.artikelSource = DbManager.getInstance();
		
		artikelListe = artikelSource.getAllArtikel();

		if(artikelListe == null){
			artikelListe = new ArrayList<Artikel>();
		}
		
		System.out.println(artikelListe);
		
	}
	
	
	/* (non-Javadoc)
	 * @see business.ArtikelLogik#getAllArtikel()
	 */
	@Override
	public List<Artikel> getAllArtikel() {
		return this.artikelListe;
	}

	/* (non-Javadoc)
	 * @see business.ArtikelLogik#getArtikel(int)
	 */
	@Override
	public Artikel getArtikel(int artikelnummer) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see business.ArtikelLogik#removeArtikel(int)
	 */
	@Override
	public void removeArtikel(int artikelnummer) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see business.ArtikelLogik#saveArtikel(model.Artikel)
	 */
	@Override
	public void saveArtikel(Artikel artikel) {
		// TODO Auto-generated method stub

	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		
	}

}
